// 列表模块

import { topCategory } from '@/api/constants'
import { findAllCateGory } from '@/api/category'

export default {
  namespaced: true,
  state () {
    return {
      // 如果默认的数组是空数据，则看不见9个数据，等到数据加载完毕之后才会看到
      // 所以，根据常量来生成一个默认的数据，不会出现空白的情况
      list: topCategory.map(item => ({ name: item }))
    }
  },
  mutations: {
    // 加载数据成功之后需要修改list所需要的mutations的数据
    seList (state, headCategory) {
      state.list = headCategory
    },
    show (state, item) {
      const category = state.list.find(category => category.id === item.id)
      category.open = true
    },
    hide (state, item) {
      const category = state.list.find(category => category.id === item.id)
      category.open = false
    }
  },
  actions: {
    async getList ({ commit }) {
      const { result } = await findAllCateGory()

      // 给一级分类加一个控制二级分类隐藏显示的数据 open
      result.forEach(item => {
        item.open = false
      })
      // 获取成功后，提交给mutation进行修改
      commit('seList', result)
    }
  }
}
